This application is generally directed to a computer threads and, more particularly, to techniques for hybrid computer thread creation and management.
As is well known in the computer art, application server environments support environments that mediate between a base computer operating system environment and user applications. Application server environments also provide a number of supporting services to user applications. For example, application server environments provide supporting services such as control of communications between clients and databases, performance monitoring, diagnostic tracing and transaction control services, among others. Many application server environments also provide specialized application programming interfaces tailored to enable users to exploit advanced services in a simple, standardized manner. Examples of application server environments include: Oracle Corporation's WebLogic™, SAP Net Weaver Application Server™, IBM Corporation's WebSphere Application Server™, and IBM Corporation's customer information control system (CICS) Transaction Server™, among others.
Application server environments may operate independently, side-by-side within an operating system environment, or in a nested fashion, with one environment embedded within another. IBM, WebSphere and CICS are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product or service names may be trademarks or registered trademarks of others. As is also well known in the art, application server environments take several forms. Some application server environments follow traditional computing paradigms (for example, using traditional procedural programming approaches). Other application server environments follow more recent programming paradigms, such as object-oriented programming and portable programming models like the Java™ model. Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the U.S. and other countries.
Where user applications have been created to use the services of, and the programming model provided by, a particular one of these application server environments, serious problems arise in any attempt to move to a different application server environment, or to enable coexistence of applications between different application server environments. These problems are exacerbated by the need to support “software as a service” and cloud computing models, in which applications need to be made mobile between server platforms and across multiple, potentially heterogeneous environments. Various attempts to address this problem have been proposed. One example is the provisioning of wrappers, connectors, or adapters that provide translations of the language and other constructs used by a user application that are specific to a first application server environment into the equivalent language and other constructs that would be used by the user application in a second application server environment. These wrappers, connectors, and adapters disadvantageously add layers of processing overhead between the applications and their environments and thus adversely affect the performance, reliability and serviceability of the applications and the application server environments.